草庐IT

c++ - 从 Visual Studio 2012 编译到 g++?

全部标签

c - Golang cgo *C.int 大小差异

我正在探索CGO,我遇到了一个怪癖,在go运行时中C.int的大小是8个字节,但Cint是4个字节。我知道Goint可以是64位或32位,具体取决于体系结构,而Cint始终是32位。是有一种标准方法可以告诉go对C.int类型使用4个字节吗?我无法找到处理此问题的文档。因此,代码无法按预期运行。它基本上将低端添加到第一个int的高端。它从不引用传递的第二个int。提前致谢。实际输出:0xc00001a0b00xc00001a0b80xc00001a0b00xc00001a0b41990199主.gopackagemain/*intaddNums(int*nums);*/import"C

go - 在 OSX 上交叉编译 Go?

我正在尝试在OSX上交叉编译一个go应用程序来为windows和linux构建二进制文件。我已经阅读了所有可以在网上找到的内容。我发现的最接近的示例已发布(除了许多关于go-nuts邮件列表的未完成讨论):http://solovyov.net/en/2012/03/09/cross-compiling-go/但它不适用于我的安装。我有去1.0.2。由于1.0.2是最近的版本,在我看来,上述所有示例均不适用于此版本。尝试执行./make.bash--no-clean并将ENVvars设置为386/windows,它确实构建了go,但是它为我的安装构建了go,即darwin/amd64并

sqlite - Go sqlite 无法在 mac osx 上构建/编译

每次调用或使用sqlite库时,我总是无法编译简单的Go代码。我使用go版本1.9.7和osxmojave(10.14.3)示例代码:packagemainimport("fmt""github.com/jmoiron/sqlx"_"github.com/mattn/go-sqlite3")funcmain(){fmt.Print("connecting.")db:=sqlx.MustConnect("sqlite3",":memory:")db.Ping()fmt.Print("connected")}总是出现这个错误#command-line-arguments/usr/local

go - 如何在 Travis-CI 上将 Go 项目从 Linux 交叉编译到 Windows

因为Travis-CI对Go的原生Windows支持似乎很缺乏,我想走这条路。我最好怎么做? 最佳答案 这为Linux本地构建,为OSX本地构建,并为windows交叉编译,作为linux构建的一部分:.travis.yml:language:gosudo:falsematrix:include:-go:tipos:linuxenv:CROSS_COMPILE=true-go:tipos:osxbefore_install:-if["$CROSS_COMPILE"="true"];thensudoaptupdate;fiinstal

go - 使用 neo4j go 驱动程序编译 neo4j 代码的问题

我正在尝试使用golangneo4j驱动程序运行位于(https://neo4j.com/developer/go/)的示例代码,但遇到了编译问题。我已经从源代码构建了seabolt1.7.4。具有以下变量PKG_CONFIG_PATH指向seabolt-1.7.4/build/dist/share/pkgconfigOPENSSL_ROOT_DIR=/usr/local/opt/opensslDYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/seabolt-1.7.4/build/dist/lib当我尝试使用命令构建我的代码时envGOOS=linuxgob

c - Windows DLL 文件的正确构建模式是什么?

这两个步骤:gcc-cmain.cgcc-oa.exemain.oMyThing.dll非常适合制作可以调用MyThing.dll内部方法的Windowsexe。注意没有-c的gccmain.c会给出如下错误:未定义对MyThing_method的引用但是,当尝试使用cgo在Golang程序中使同一个系统工作时,我遇到了与使用没有-c的gcc时相同的undefinedreference错误。我读过:https://github.com/golang/go/wiki/WindowsDLLs并且很想尝试使用syscall.NewLazyDLL但我的问题是我的foo.go文件正在调用C.So

c - 如何将 Go 函数作为参数传递给 C 函数?

我正在尝试将Go函数传递给C函数。类似于:stm:=C.struct_tray_menu{....fn://definitionofmethod....}C.menu_cb(stm);并将其传递给C函数:staticvoidmenu_cb(structtray_menu*item){(void)item;printf("menu:clickedon%s\n",item->text);}我只是想知道如何定义像C.function这样的东西。 最佳答案 主要问题是对c中go定义的误解。所以最终代码看起来像//exportcallOnMe

c - 如何从 C 库中检索 probuf

我正在尝试使用GoogleProtocolBuffers与Go中的C库进行通信,但我无法使其正常工作。我在尝试将protobuf发送到C库时遇到错误我将发布最少的代码来重现我现在面临的错误(我删除了大部分C部分,因为它与此错误无关):/*#cgoCFLAGS:-I@CURRENT_SOURCE_DIR@/../../library/crnd/include-I@CMAKE_CURRENT_BINARY_DIR@/../../library#cgoLDFLAGS:-L@CRND_LIBRARY_PATH@-lcrnd#include#include#include#includetype

docker - 二进制文件是用 'CGO_ENABLED=0' 编译的,go-sqlite3 需要 cgo 才能工作。这是一个 stub

我想在Golang项目中使用sqlite3。但是在docker容器中运行它有一些错误。二进制文件是用'CGO_ENABLED=0'编译的,go-sqlite3需要cgo才能工作。这是一个stub这是我的构建脚本CGO_ENABLED=0GOOS=linuxGOARCH=amd64gobuild-omainmain.go我不能在mac电脑上使用CGO_ENABLED=1FROMgolang:1.13-alpineENVWORK_DIR=/goENVTIME_ZONE=Asia/SingaporeRUNln-snf/usr/share/zoneinfo/$TIME_ZONE/etc/loc

compiler-construction - 在 Windows 64 位中编译 Go 的问题

我已经从gomingw安装了Go适用于64位Windows。但是,我无法在任何地方找到如何实际编译.go文件。这是直接从Windows支持的Gowiki链接的程序,但所有教程都在谈论使用6g和gccgo等,但这些都不能在我的Windows机器上运行。实际上,我想做的是,我将我的“hello.go”放在src文件夹中,然后在转到src文件夹后,我在命令提示符下运行命令“8ghello.go”。但。它显示错误“打开a.go没有这样的文件或目录”。任何人都可以通过提供在Windows中编译go程序的正确步骤来帮助我吗?提前致谢。 最佳答案